﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Model;
using WMS.Repository.IRepository;

namespace WMS.Service.IService
{
    public interface IRoleService
    {
        Task<PageResult<RoleModel>> GetRolePagedListAsync(RoleQueryRequest request);

        public Task<(bool Success, string Message)> AddRoleAsync(string roleName, string roleDesc);

        public Task<(bool Success, string Message)> UpdateRoleAsync(long id, string roleName, string roleDesc,byte status);

        public Task<(bool Success, string Message)> UpdateRoleStatusAsync(long id);

        public Task<(bool Success, string Message)> UpdateRolesStatusAsync(List<long> ids);

        public Task<(bool Success, string Message, object Data)> GetUserRoleInfoAsync(long roleId);

        Task<(bool Success, string Message)> IsBandUserAsync(int isBand, long roleId, List<long> userIds);

        Task<(bool Success, string Message)> IsBindMenuAsync(long roleId, List<long> menuIds);

        Task<List<MenuBandTreeDto>> GetMenuTreeWithRoleStatusAsync(long roleId);
    }
}
